<?php
class UserAuthentication extends TApplicationComponent
{
    public function ValidateUser($username, $password)
    {
		$usuarioCriteria = new Criteria();
		$usuarioCriteria->add(UsuarioPeer::USERNAME, $username);
		$usuarioCriteria->addAnd(UsuarioPeer::PASSWORD, $password);
		$usuario	=	UsuarioPeer::doSelectOne($usuarioCriteria);

		if(is_object($usuario)){
			$_SESSION["Nombrecompleto"] = $usuario->getNombrecompleto();
			$_SESSION["IdUsuario"] = $usuario->getIdusuario();
            $_COOKIE["IdUsuario"] = $_SESSION["IdUsuario"];

			return true;
		}
		else{
			return false;
		}
    }

	public function Authentication($page){
		// Verifica Login
		if($page->PagePath == "Login"){
            return true;
        }

		if(!isset($_SESSION["Logon"]) /* && $page->PagePath != "Login" */ ){
			if(!isset($_COOKIE["Logon"])){
				return false;
			}
			else{
				$_SESSION["Logon"] = 	$_COOKIE["Logon"];
    			$_SESSION["IdUsuario"] = $_COOKIE["IdUsuario"];

				return true;
			}
		}
		else{
    		return true;
        }
	}

	public function Authorization($page){
		$usuarioPaginaCriteria = new Criteria();
		$usuarioPaginaCriteria->add(UsuariopaginaViewPeer::USERNAME, $_SESSION["Logon"]);
		$pdsUsuarioPagina 	= new PropelDataSource("UsuariopaginaView", $usuarioPaginaCriteria);
		$usuarioPagina		=	$pdsUsuarioPagina->DataSource;
		$autorizated		=	false;
		$pagePath			=	$page->PagePath;
		$displayMenu		= 	"Display(";


		for($i = 0; $i < count($usuarioPagina); $i++){
			if($usuarioPagina[$i]["Pagina"] == $pagePath){
				$autorizated = true;
			}

			if($usuarioPagina[$i]["Menu"]){
				$displayMenu	.= 	sprintf("'%s',", $usuarioPagina[$i]["Pagina"]);
			}
		}

		if(!$autorizated){
			$page->Response->redirect("?page=Home");
		}

		$displayMenu	= 	substr_replace($displayMenu, ");", -1, 1);
		$page->ClientScript->registerEndScript("Menu", $displayMenu);
	}

	public function ObtainRol($username = ""){
//		include_once("siprea/UsuariosPeer.php");
//		$cUsuario	= new Criteria;
//		$cUsuario->add(UsuariosPeer::USUARIO_NOMBRE,$name);
//		$usuario	= UsuariosPeer::doSelectOne($cUsuario);
//
//		return $usuario;
//		$con = Propel::getConnection();
//		$stmt = $con->createStatement();
//		$sql = sprintf("select usuario_rol from usuarios where usuario_nombre = '%s';", $username);
//		$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM);
//		$rs->next();
//		$row = $rs->getRow();
//		$rol = $row[0];
        $rol = "";
        if ($username=="") {
            if (isset($_SESSION["IpvuSgrhLogon"])) {
                $username = $_SESSION["IpvuSgrhLogon"];
            }
        }
        $c = new Criteria();
        $c->add(UsuarioPeer::USERNAME, $username, CRITERIA::EQUAL);
        $usuario = UsuarioPeer::doSelectOne($c);
        if (is_object($usuario)) {
            $rol = $usuario->getRol()->getNombre();
        }
        //echo $rol;exit;
		return $rol;
	}


}

?>